圖片來源:(https://forum.gamer.com.tw/C.php?bsn=43473&snA=11713)
在 Python 中,模組是包含 Python 代碼文件。模組可以包含函數、變量、類型
模組可以用來組織程式碼,更易於管理和維護。模組還可以用來重複使用程式碼,使更有效率。要使用模組,需要先將導入到主程式中。導入模組可以使用 import 語句
模組的擴展名是 .py
import my_module
# 將導入名為 my_module 模組
要使用模組中的函數或變量,可以使用 module_name.function_name
或 module_name.variable_name
語法
import my_module
def main():
print(my_module.add_two_numbers(1, 2))
if __name__ == "__main__":
main()
# 輸出 3
模組還可以使用 from
語句導入from
語句可以導入模組中的特定函數或變量
from my_module import add_two_numbers
def main():
print(add_two_numbers(1, 2))
if __name__ == "__main__":
main()
# 輸出 3
Python 附帶許多標準庫模組,可用各種任務,例如:文件處理、數學計算、網路通信
使用標準庫模組可以節省時間並快速開發應用程式
math
數學函數sin()
、cos()
、sqrt()
random
隨機數函數randint()
、random()
os
操作系統相關函數open()
、read()
、write()
sys
系統相關函數argv()
、exit()
匯入模組
import math
# 使用模組中的函式
result = math.sqrt(16)
print(result) # 輸出 4.0
匯入特定函式或變數
from math import pi
print(pi) # 輸出 3.141592653589793
為模組取別名
import numpy as np
# 使用別名 np 來呼叫 numpy 模組中的函式
array = np.array([1, 2, 3])
要創建模組,請創建一個帶有 .py 擴展名文件,並將其放入一個目錄中
然後,可以使用 import 語句導入模組
# my_module.py
def greet(name):
print(f"Hello, {name}!")
# 在另一個檔案中導入自定義模組
import my_module
my_module.greet("Alice")
Python 模組是擴展程式功能的重要工具。透過合理地使用模組,可以大幅提高開發效率,讓你的程式碼更加簡潔、可讀和可維護
Python 中 封包(package)
是用來組織 模組(module)
一種方式
封包可以用來將相關的模組組織在一起,並提供一個統一的入口點來使用這些模組
建立封包
要建立一個封包,首先需要在一個資料夾中建立一個 __init__.py
檔案__init__.py
檔案是封包的入口點,會在封包被匯入(import)時被執行
匯入封包
要匯入一個封包,可以使用 import
語句import
語句可以用來匯入整個封包,也可以用來匯入封包中的特定模組
匯入封包中模組
要匯入封包中的特定模組,可以使用 import
語句後面跟著模組的名稱
例如,如果封包的名稱為 mypackage
,其中包含一個名為 mymodule
的模組
import mypackage.mymodule
匯入封包中所有模組
要匯入封包中的所有模組,可以使用 from
語句from
語句可以用來匯入封包中的所有模組,也可以用來匯入封包中的特定模組
from mypackage import *
封包命名空間
封包命名空間是封包中所有模組的名稱空間的集合
當匯入一個封包時,Python會將封包的命名空間添加到當前作用域的命名空間中
封包應用場景
# 建立一個名為 mypackage 的資料夾
# 在 mypackage 資料夾中建立一個 __init__.py 檔案
# 在 __init__.py 檔案中加入以下程式碼
def print_hello():
print('Hello, world!')
# 在 mypackage 資料夾中建立一個名為 mymodule.py 檔案
# 在 mymodule.py 檔案中加入以下程式碼
def print_goodbye():
print('Goodbye, world!')
# 匯入 mypackage 封包
import mypackage
# 使用 mypackage.print_hello() 來列印 'Hello, world!'
mypackage.print_hello()
# 使用 mypackage.mymodule.print_goodbye() 來列印 'Goodbye, world!'
mypackage.mymodule.print_goodbye()
程式碼中,mypackage
封包包含一個名為 __init__.py
的入口點檔案和一個名為 mymodule.py
的模組 __init__.py
檔案中包含一個 print_hello()
函式,mymodule.py
檔案中包含一個 print_goodbye()
函式
import mypackage
會將 mypackage
封包的命名空間添加到當前作用域的命名空間中
因此,可以使用 mypackage.print_hello()
來呼叫 mypackage
封包中的 print_hello()
函式
import mypackage.mymodule
會將 mypackage.mymodule
模組的命名空間添加到當前作用域的命名空間中
因此,可以使用 mypackage.mymodule.print_goodbye()
來呼叫 mypackage.mymodule
模組中的 print
my_package
├── init.py
└── my_module.py